﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EkStudio.Com.UI.Interface
{
    public interface ProjectUnitBillInterface
    {

        string BillKey
        {
            get;
        }

        /// <summary>
        /// 是否只读
        /// </summary>
        bool ReadOnly
        {
            get;
            set;
        }
        /// <summary>
        /// 是否是子页面
        /// </summary>
        bool isSubUnitBill
        {
            get;
        }

        

        ProjectUnitBillInterface ParentPage
        {
            get;
            set;
        }

        List<ProjectUnitBillInterface> SubjectPage
        {
            get;
        }

        /// <summary>
        /// 是否保存
        /// </summary>
        /// <returns></returns>
        bool SaveStatus
        {
            get;
            set;
        }



        /// <summary>
        /// 添加子页面
        /// </summary>
        /// <param name="bill"></param>
        void AddSubjectBill(ProjectUnitBillInterface bill);
        /// <summary>
        /// 移除子页面
        /// </summary>
        /// <param name="bill"></param>
        void RemoveSubjectBill(ProjectUnitBillInterface bill);
        
        bool ContainSubject(ProjectUnitBillInterface bill);

        /// <summary>
        /// 保存子页面内容
        /// </summary>
        /// <param name="updateParent">是否调用根工程更新状态</param>
        void saveData(bool updateParent);
        /// <summary>
        /// 是否可以关闭
        /// </summary>
        bool close();

        bool Copy(out object clazz);



    }
}
